//package com.wonders.app.Test;
//
//
//
//import cn.hutool.extra.ssh.JschUtil;
//import com.alibaba.fastjson.JSON;
//import com.alibaba.fastjson.JSONArray;
//import com.alibaba.fastjson.JSONObject;
//import com.jcraft.jsch.Session;
//import com.wonders.app.bean.NodeBean;
//
//
//import java.io.*;
//import java.util.ArrayList;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//import java.util.regex.Matcher;
//import java.util.regex.Pattern;
//import java.util.regex.PatternSyntaxException;
//
///**
// * 递归设计
// * 结构 Id-pId-name
// * pId = 0 ，说明是 根目录
// */
//public class Temp {
//
//    public static void main(String[] args) {
//
//
//        readName();
//
//
////        Map<String, NodeBean> nodes = new HashMap<String, NodeBean>();
//////        nodes.put()
////        //模拟数据库存储树结构
////        // 这地方，循环整个list（一行一行读取的，解析封装好的），对应的node放上去
////        nodes.put("1", new NodeBean("1", "root", "0"));
////        nodes.put("2", new NodeBean("2", "a", "1"));
////        nodes.put("3", new NodeBean("3", "b", "1"));
////        nodes.put("4", new NodeBean("4", "c", "1"));
////        nodes.put("5", new NodeBean("5", "d", "2"));
////        nodes.put("6", new NodeBean("6", "e", "2"));
////        nodes.put("7", new NodeBean("7", "f", "3"));
////        nodes.put("8", new NodeBean("8", "g", "7"));
////        System.out.println("result:" + JSON.toJSONString(getNodeJson("0", nodes)));
//
//    }
//
//    /**
//     * 递归处理   数据库树结构数据->树形json
//     *
//     * @param nodeId
//     * @param nodes
//     * @return
//     */
//    public static JSONArray getNodeJson(String nodeId, Map<String, NodeBean> nodes) {
//
//        //当前层级当前node对象
////        NodeBean cur = nodes.get(nodeId);
//        //当前层级当前点下的所有子节点（实战中不要慢慢去查,一次加载到集合然后慢慢处理）
//        List<NodeBean> childList = getChildNodes(nodeId, nodes);
//
//        JSONArray childTree = new JSONArray();
//        //具体的某个节点
//        for (NodeBean node : childList) {
//            JSONObject o = new JSONObject();
//            o.put("name", node.getName());
//            o.put("pId", node.getPId());
//            o.put("id", node.getId());
//            o.put("type",node.getType());
//
//            JSONArray childs = getNodeJson(node.getId(), nodes);  //递归调用该方法
//            if (!childs.isEmpty()) {
//                o.put("childrens", childs);
//
//            }
//            childTree.fluentAdd(o);
//        }
//        return childTree;
//    }
//
//    /**
//     * 获取当前节点的所有子节点
//     *
//     * @param nodeId
//     * @param nodes
//     * @return
//     */
//    public static List<NodeBean> getChildNodes(String nodeId, Map<String, NodeBean> nodes) {
//        List<NodeBean> list = new ArrayList<NodeBean>();
//        //循环遍历整个数据，找到要查询的某个节点id，node的父亲节点。相等。加入如list，就是这个nodeId的所有子节点
//        for (String key : nodes.keySet()) {
//            System.out.println("map 的 key= "+key);
//            //节点的父节点等于当前节点
//            if (nodes.get(key).getPId().equals(nodeId)) {
//                list.add(nodes.get(key));
//            }
//        }
//        System.out.println("当前节点下的所有节点"+list.toString());
//        return list;
//    }
//
//
//
//
//    //将tree每行读取
//    private static void readName() {
//        try {
//            InputStream is = new FileInputStream("D:\\\\dir.txt");
//            BufferedReader reader = new BufferedReader(new InputStreamReader(is));
//            String str = null;
//            int i = 0 ;
//            while (true) {
//
//                str = reader.readLine();
//                //读取所有行数据
//                if (str != null){
////                    System.out.println(str);
//                    //该行有数据且以./开头（去掉不合理数据），再去掉tree生成的自身文件信息
//                    if (str.contains("./")&&!str.equals("./dir.txt")){
//                        i++ ;
//                        System.out.println("终级"+str);
//                        cutName(str,i);
//                    }
//                }else {
//                    break;
//                }
//            }
//            is.close();
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//    }
//
//    static Map<String, NodeBean> nodesMy = new HashMap<String, NodeBean>();
//
//    private static void cutName(String fileName,int keyName) {
//        String WholePath = "/usr/lib/1-2-com.wonders.file.txt";
//        String WholePath3 = "./1-0-pic";
//        String resultString = null;
//        try {
//            Pattern regex = Pattern.compile("([^\\\\/:*?\"<>|\r\n]+$)");
//            Matcher regexMatcher = regex.matcher(fileName);
//            if (regexMatcher.find()) {
//                resultString = regexMatcher.group(1);
//
//
//                System.out.println(resultString);
//                //将名称切割
////                String str = "1-12-pic.md";
//                String result[] = resultString.split("-");
//                String id = result[0];
//                String pId = result[1];
//                String name = result[2];
//                System.out.println("自身ID"+id );
//                System.out.println("父ID"+pId);
//                System.out.println("名字"+name);
//                //是文件
//                if(name.contains(".")){
//                    nodesMy.put(String.valueOf(keyName), new NodeBean(id, name, pId,"f"));
//                }else {
//                    //是目录
//                    nodesMy.put(String.valueOf(keyName), new NodeBean(id, name, pId,"d"));
//                }
//
//
//                System.out.println("result:" + JSON.toJSONString(getNodeJson("0", nodesMy)));
//
//            }
//        } catch (PatternSyntaxException ex) {
//            System.out.println(ex.getMessage());
//        }
//
//    }
//
//    // tree -if > /middle/dir.txt    /middle
//    private void callCMD(String tarName, String fileName, String... workspace) {
//        Process process;
//        try {
//            String cmd = "tar -cf" + tarName + " " + fileName;
////            String[] cmd = {"tar", "-cf", tarName, fileName};
//            File dir = null;
//            if (workspace[0] != null) {
//                dir = new File(workspace[0]);
//                System.out.println(workspace[0]);
//            }
//            process = Runtime.getRuntime().exec(cmd, null, dir);
////          process = Runtime.getRuntime().exec(cmd);
//            int status = process.waitFor();
//            if (status != 0) {
//                System.err.println("Failed to call shell's command and the return status's is: " + status);
//            }
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//    }
//
//
//    private void testpd(){
//
/////新建会话，此会话用于ssh连接到跳板机（堡垒机），此处为10.1.1.1:22
//        Session session = JschUtil.getSession("101.200.42.125", 22, "root", "123456");
//
//    }
//}
